'use strict'

const Koa = require('koa');     //引入koa模块（一个封装了http服务器的模块）
const bodyparser = require('koa-bodyparser');       //引入koa-bodyparser模块(用于解析body里面的html内容)
const controllers = require('./controllers/index.js');       //引入控制器index.js文件暴露的函数（./controllers后面未接 /XXX 则默认index文件)
const templating = require('./templating');
const koa_static = require('koa-static');
// const { sequelize, DataTypes, fn_createTableAttribute } = require('./db');
const models = require('./models')
// console.log(models);
// const session = require('koa-session'); // 记录客户状态的机制，不同的是Cookie保存在客户端浏览器中，而session保存在服务器上
const session = require('./session');
var server = new Koa();     //创建一个koa实例对象

server.use(session(server)); 
server.use(bodyparser());    //将koa-bodyparser模块注册到server服务器实例中
server.use(templating);
server.use(koa_static(__dirname));
server.use(controllers());  //将控制器index.js文件注册到server服务器实例中

// 初始化数据库
// (async ()=>{
//     console.log('正在初始化数据表。。。');
//     await models.sync();
// })();

// 创建端口
var port = 5353;
server.listen(port);   //监听端口
console.log(`http://127.0.0.1:${port}`);